#ifndef __GETFRAME_H__
#define __GETFRAME_H__

#include "main.h"
#include "caclulate.h"
#include <stdint.h>
#include <string.h>

// 帧大小定义
#define FRAME_HEADER_SIZE 4    // 帧头大小
#define FRAME_DATA_SIZE_1 4    // 第一个帧的有效数据大小
#define FRAME_DATA_SIZE_2 24   // 第二个帧的有效数据大小
#define FRAME_FIXED_SIZE 2     // 固定部分大小
#define FRAME_CRC_SIZE 2       // CRC16 校验大小
extern uint16_t frame_count;
// 第一个帧的总大小
#define FRAME_TOTAL_SIZE_1 (FRAME_HEADER_SIZE + FRAME_DATA_SIZE_1 + FRAME_FIXED_SIZE + FRAME_CRC_SIZE)

// 第二个帧的总大小
#define FRAME_TOTAL_SIZE_2 (FRAME_HEADER_SIZE + FRAME_DATA_SIZE_2 + FRAME_FIXED_SIZE + FRAME_CRC_SIZE)

void SoftVersion(uint8_t *data);
void BuildFrame1(uint8_t data1, uint8_t data2, uint8_t data3, uint8_t data4);
void BuildFrame2(const uint8_t *sgm_dev1, const uint8_t *sgm_dev2, const uint8_t *controller);
uint8_t *GetFrame1(void);
uint8_t *GetFrame2(void);

#endif
